-- *****************************************************************
-- CISCO-DSL-PROVISION-MIB.my:  Cisco DSL Provision MIB

-- July 1998, Junming Gao

-- Copyright (c) 1998, 1999, 2000-2005 by cisco Systems, Inc.
-- All rights reserved.

-- *****************************************************************

CISCO-DSL-PROVISION-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Integer32,
    Gauge32,
    Unsigned32,
    IpAddress
        FROM SNMPv2-SMI
    DisplayString,
    RowStatus,
    TruthValue
        FROM SNMPv2-TC
    ifIndex,
    InterfaceIndexOrZero
        FROM IF-MIB
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    ciscoExperiment
        FROM CISCO-SMI;

ciscoDslProvisionMIB MODULE-IDENTITY
    LAST-UPDATED    "200512140000Z"
    ORGANIZATION    "Cisco Systems, Inc."
    CONTACT-INFO
            "Cisco Systems
            Customer Service

            Postal: 170 W Tasman Drive
            San Jose, CA  95134
            USA

            Tel: +1 800 553-NETS

            E-mail: cs-dsl@cisco.com"
    DESCRIPTION
            "Cisco DSL (Digital Subscriber Line) Provision MIB Module.

            It is used to create subscriber PPP over ATM sessions and  
            related tasks."
    REVISION        "200512140000Z"
    DESCRIPTION
            "Updated the imports such that Unsigned32 is imported from
            SNMPv2-SMI instead of CISCO-TC. Formatted the complete MIB. 
            Included the ciscoVcClassGroup as an optional group under
            the MODULE-COMPLIANCE ciscoDslProvMIBBasicCompliance. "
    REVISION        "9906180000Z"
    DESCRIPTION
            "Initial version of this mib."
    ::= { ciscoExperiment 30 }

ciscoDslProvMIBObjects OBJECT IDENTIFIER
    ::= { ciscoDslProvisionMIB 1 }

cdslNrpSlot OBJECT IDENTIFIER
    ::= { ciscoDslProvMIBObjects 1 }

cdslVirtualTemplate OBJECT IDENTIFIER
    ::= { ciscoDslProvMIBObjects 2 }

cdslLocalIpAddrPool OBJECT IDENTIFIER
    ::= { ciscoDslProvMIBObjects 3 }

cdslAtmPvc OBJECT IDENTIFIER
    ::= { ciscoDslProvMIBObjects 4 }

cdslVcClass OBJECT IDENTIFIER
    ::= { ciscoDslProvMIBObjects 5 }

-- DSL Config Information

-- NRP (Node Routing Processor) IP Address Information
cdslMaxNrps OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "Maximum number of the node routing processors (NRP) allowed
            in the system."
    ::= { cdslNrpSlot 1 }

cdslNrpNumber OBJECT-TYPE
    SYNTAX          Gauge32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "The number of NRPs that are present in this system."
    ::= { cdslNrpSlot 2 }

cdslNrpIpAddressTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslNrpIpAddressEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This table reflects the IP addresses of each NRP
            in the system."
    ::= { cdslNrpSlot 3 }

cdslNrpIpAddressEntry OBJECT-TYPE
    SYNTAX          CdslNrpIpAddressEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "These entries are used to store the IP Addresses of
            NRP cards that are inserted in the indexed slot.
            The IP addresses are used to access these cards."
    INDEX           { cdslNrpSlotIndex }
    ::= { cdslNrpIpAddressTable 1 }

CdslNrpIpAddressEntry ::= SEQUENCE {
    cdslNrpSlotIndex    Integer32,
    cdslNrpIpAddress    IpAddress
}

cdslNrpSlotIndex OBJECT-TYPE
    SYNTAX          Integer32 (1..2147483647)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "The object specifies the identifier of a slot
            containing a NRP."
    ::= { cdslNrpIpAddressEntry 1 }

cdslNrpIpAddress OBJECT-TYPE
    SYNTAX          IpAddress
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "The object specifies the IP addresses associated with the
            NRP contained in the slot identified by cdslNrpSlotIndex."
    ::= { cdslNrpIpAddressEntry 2 }

-- Virtual Template Interface Information
cdslVirtualTemplateNumberTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslVirtualTemplateNumberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This table reflects the number of virtual template
            that are presently set up in each NRP.

            A virtual template interface is a logical entity 
            a configuration for a serial-interface but not tied to a 
            physical interface - thatcan be applied dynamically as needed."
    ::= { cdslVirtualTemplate 1 }

cdslVirtualTemplateNumberEntry OBJECT-TYPE
    SYNTAX          CdslVirtualTemplateNumberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "Entries are read only."
    INDEX           { cdslNrpSlotIndex }
    ::= { cdslVirtualTemplateNumberTable 1 }

CdslVirtualTemplateNumberEntry ::= SEQUENCE {
    cdslMaxVirtualTemplates  Unsigned32,
    cdslVirtualTemplates     Gauge32
}

cdslMaxVirtualTemplates OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "The object specifies the maximum number of virtual
            templates allowed in one single NRP."
    ::= { cdslVirtualTemplateNumberEntry 1 }

cdslVirtualTemplates OBJECT-TYPE
    SYNTAX          Gauge32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the number of virtual templates
            presently set up in each NRP identified by cdslNrpSlotIndex."
    ::= { cdslVirtualTemplateNumberEntry 2 }

-- Virtual Template Table
cdslVirtualTemplateTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslVirtualTemplateEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This table includes the virtual templates in the NRP
            identified by cNrpSlotIndex.

            Though a virtual template is often called a virtual 
            template interface, it is not reflected in the ifTable."
    ::= { cdslVirtualTemplate 2 }

cdslVirtualTemplateEntry OBJECT-TYPE
    SYNTAX          CdslVirtualTemplateEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "User may create a new entry or delete an existing
            entry. 

            Entries may be created without explicitly setting
            cdslVTRowStatus.

            While the row status is 'active', objects having 
            read-create access can be changed."
    INDEX           {
                        cdslNrpSlotIndex,
                        cdslVTIndex
                    }
    ::= { cdslVirtualTemplateTable 1 }

CdslVirtualTemplateEntry ::= SEQUENCE {
    cdslVTIndex                Integer32,
    cdslVTIpAddressMethod      INTEGER,
    cdslVTIpAddress            IpAddress,
    cdslVTIpAddressMask        IpAddress,
    cdslVTIpIfIndex            InterfaceIndexOrZero,
    cdslVTPeerIpAddressMethod  INTEGER,
    cdslVTPeerIpAddrPool       DisplayString,
    cdslVTPppAuthChap          Integer32,
    cdslVTPppAuthMSChap        Integer32,
    cdslVTPppAuthPap           Integer32,
    cdslVTPppChapHost          DisplayString,
    cdslVTPppChapPassword      DisplayString,
    cdslVTPppChapEncrypType    TruthValue,
    cdslVTPppChapRefuse        INTEGER,
    cdslVTPppChapWaitPeer      TruthValue,
    cdslVTPppPapUserName       DisplayString,
    cdslVTPppPapPassword       DisplayString,
    cdslVTPppPapEncrypType     TruthValue,
    cdslVTPppUseTacacs         INTEGER,
    cdslVTRowStatus            RowStatus
}

cdslVTIndex OBJECT-TYPE
    SYNTAX          Integer32 (1..2147483647)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This object represents an arbitrary index used to
            identify the virtual template entry."
    ::= { cdslVirtualTemplateEntry 1 }

cdslVTIpAddressMethod OBJECT-TYPE
    SYNTAX          INTEGER {
                        none(0),
                        ipAddress(1),
                        interfaceIp(2),
                        negotiate(3)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object indicates how an IP address is obtained
            to be associated with this virtual template. 
            The actual parameters of these methods are indicated 
            by the objects defined after.

            none        -- means no IP address associated.
            ipAddress   -- means an explicit IP address and mask.
            interfaceIp -- uses the IP address of an interface 
                           if it has one.
            negotiate   -- obtains IP address from a pre-configured 
                           DHCP server.
            In the set operation, only the parameter corresponding to 
            this object is considered. All other parameters are 
            ignored and forgotten."
    DEFVAL          { none }
    ::= { cdslVirtualTemplateEntry 2 }

cdslVTIpAddress OBJECT-TYPE
    SYNTAX          IpAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the IP address associated with
            this virtual template entry. 

            This object is only valid when cdslVTIpAddressMethod
            is 'ipAddress'. To set the value correctly, 
            this object shall be set in the same packet as 
            cdslVTIpAddressMethod."
    ::= { cdslVirtualTemplateEntry 3 }

cdslVTIpAddressMask OBJECT-TYPE
    SYNTAX          IpAddress
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the IP address mask.

            This object is only valid when cdslVTIpAddressMethod
            is 'ipAddress'. To set the value correctly, 
            this object shall be set in the same packet as 
            cdslVTIpAddressMethod."
    DEFVAL          { 'ffffffff'h }
    ::= { cdslVirtualTemplateEntry 4 }

cdslVTIpIfIndex OBJECT-TYPE
    SYNTAX          InterfaceIndexOrZero
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the ifIndex of the interface,
            whose IP address will be used for the virtual template 
            entry. Any interface with an IP address in the routing 
            processor can be selected.

            This object is only valid when cdslVTIpAddressMethod
            is 'interfaceIp'. To set the value correctly, this
            object shall be set in the same packet as 
            cdslVTIpAddressMethod."
    DEFVAL          { 0 }
    ::= { cdslVirtualTemplateEntry 5 }

cdslVTPeerIpAddressMethod OBJECT-TYPE
    SYNTAX          INTEGER {
                        none(0),
                        negotiate(1),
                        ipAddressPool(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object indicates how an IP address is obtained
            when a peer requesting one.
            The actual parameters of these methods are indicated 
            by the objects defined after.

            none      -- means no IP address associated.
            negotiate -- obtains IP address from a pre-configured 
                         DHCP server.
            ipAddressPool -- obtains IP address from an ip address 
                             pool specified by cdslVTPeerIpAddrPool 
                             to be defined.

            In the set operation, only the parameter corresponding to 
            the value of this object is considered. 
            All other parameters are ignored and forgotten."
    DEFVAL          { none }
    ::= { cdslVirtualTemplateEntry 6 }

cdslVTPeerIpAddrPool OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (0..32))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify peer default local IP address
            pool name. 

            This object is only valid when cdslVTPeerIpAddressMethod
            is 'ipAddressPool'. To set the value correctly, this
            object shall be set in the same packet as 
            cdslVTPeerIpAddressMethod.

            If set this object to a pool name that does not correspond 
            to any entry in the cdslLocalIpAddrPoolTable, then 
            the global IP address mechanism shall be applied.

            So to use the global IP address mechanism, one should set
            this object to a non-existent cdslLocalIpAddrPoolName or
            an empty string."
    DEFVAL          { "" }
    ::= { cdslVirtualTemplateEntry 7 }

cdslVTPppAuthChap OBJECT-TYPE
    SYNTAX          Integer32 (0..65535)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify to use Challenge Handshake
            Authentication Protocol (CHAP) authentication method and 
            the order it is used.

            The value zero indicates that CHAP is not used.

            See the description of object cdslVTPppAuthPap for 
            the meaning of non-zero value."
    DEFVAL          { 0 }
    ::= { cdslVirtualTemplateEntry 8 }

cdslVTPppAuthMSChap OBJECT-TYPE
    SYNTAX          Integer32 (0..65535)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify the use of Microsoft's
            CHAP (MSCHAP) authentication method and the order it is used.

            The value zero indicates that MSCHAP is not used.

            See the description of object cdslVTPppAuthPap for 
            the meaning of non-zero value."
    DEFVAL          { 0 }
    ::= { cdslVirtualTemplateEntry 9 }

cdslVTPppAuthPap OBJECT-TYPE
    SYNTAX          Integer32 (0..65535)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify whether to use Password
            Authentication Protocol (PAP) authentication method and 
            the order it is used.

            This object is one of multiple objects used to specify 
            authentication methods.  The other authentication method 
            objects are cdslVTPppAuthChap and cdslVTPppAuthMSChap.

            A non-zero value for any of these authentication method 
            objects indicates that its associated authentication 
            method is to be employed.  The value of these objects 
            indicates the order in which their respective methods 
            should be applied to the process of authenticating users.

            The lowest non-zero valued authentication method object 
            is used first. If it fails, the second lowest is 
            applied.  If all methods fail, the user is rejected.

            If multiple objects are set to the same value, then 
            the order of the corresponding methods will be 
            adjusted in the order of CHAP, MSCHAP and PAP.

            Each time one of these auth method value is set, all the 
            auth method object values will be re-assigned to reflect 
            the order change and the values will be in an incremental 
            order started from one. 

            So the return value(s) of a snmpget request for these 
            objects may be different from what they are set. 
            However the order is preserved."
    DEFVAL          { 0 }
    ::= { cdslVirtualTemplateEntry 10 }

cdslVTPppChapHost OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (0..32))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify the PPP CHAP host name."
    DEFVAL          { "" }
    ::= { cdslVirtualTemplateEntry 11 }

cdslVTPppChapPassword OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (0..25))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify the PPP CHAP password."
    DEFVAL          { "" }
    ::= { cdslVirtualTemplateEntry 12 }

cdslVTPppChapEncrypType OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify whether to encrypt
            the PPP CHAP password.

            Only effective when cdslVTPppChapPassword is non-empty."
    DEFVAL          { false }
    ::= { cdslVirtualTemplateEntry 13 }

cdslVTPppChapRefuse OBJECT-TYPE
    SYNTAX          INTEGER {
                        no(1),
                        refuse(2),
                        refuseCallinOnly(3)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "The object is used to refuse CHAP authentication
            from peers requesting it. 

            To disable this function set the value to no.  

            RefuseCallinOnly indicating the system to refuse to 
            answer CHAP authentication challenges received from 
            the peer, but will still require the peer to answer  
            any CHAP challenges this system sends. "
    DEFVAL          { no }
    ::= { cdslVirtualTemplateEntry 14 }

cdslVTPppChapWaitPeer OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify that the system will
            not authenticate to a peer requesting CHAP authentication 
            until after the peer has authenticated to this system.

            To disable this function, set this object to 'false'.
            That is the system will handle the peer authentication 
            requesting even if a peer has not authenticate itself yet."
    DEFVAL          { true }
    ::= { cdslVirtualTemplateEntry 15 }

cdslVTPppPapUserName OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (0..32))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify the PPP PAP user
            name that will be sent to a peer device.

            Please refer to the description of cdslVTPppPassword 
            to see the interaction."
    DEFVAL          { "" }
    ::= { cdslVirtualTemplateEntry 16 }

cdslVTPppPapPassword OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (0..32))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify the PPP PAP authentication
            password.  

            The system only utilizes the user name and password when 
            both cdslVTPppUserName and cdslVTPppPassword are 
            non-empty strings. To enforce this the following
            mechanism is applied.

            When both are empty strings, set any single one into 
            non-empty string would automatically set the other into 
            the same string. When set any into empty string, the other 
            object would be set to empty string too automatically."
    DEFVAL          { "" }
    ::= { cdslVirtualTemplateEntry 17 }

cdslVTPppPapEncrypType OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify whether to encrypt
            the PAP password. 

            Only effective when cdslVTPppPapPassword
            is non-empty."
    DEFVAL          { false }
    ::= { cdslVirtualTemplateEntry 18 }

cdslVTPppUseTacacs OBJECT-TYPE
    SYNTAX          INTEGER {
                        no(1),
                        yes(2),
                        singleLine(3)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify whether to enable
            TACACS for PPP authentication.

            SingleLine means yes and plus to accept username and 
            password in the username field that is in single line."
    DEFVAL          { no }
    ::= { cdslVirtualTemplateEntry 19 }

cdslVTRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to create a new row or modify
            or delete an existing row in this table."
    DEFVAL          { active }
    ::= { cdslVirtualTemplateEntry 20 }

-- Local IP Address Pool
cdslLocalIpAddrPoolNumberTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslLocalIpAddrPoolNumberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This table indicates the number of IP address pools
            that are presently set up in each NRP."
    ::= { cdslLocalIpAddrPool 1 }

cdslLocalIpAddrPoolNumberEntry OBJECT-TYPE
    SYNTAX          CdslLocalIpAddrPoolNumberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "Entries are read only."
    INDEX           { cdslNrpSlotIndex }
    ::= { cdslLocalIpAddrPoolNumberTable 1 }

CdslLocalIpAddrPoolNumberEntry ::= SEQUENCE {
    cdslMaxLocalIpAddrPools  Unsigned32,
    cdslLocalIpAddrPools     Gauge32
}

cdslMaxLocalIpAddrPools OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "Maximum number of local IP address pools allowed in a NRP."
    ::= { cdslLocalIpAddrPoolNumberEntry 1 }

cdslLocalIpAddrPools OBJECT-TYPE
    SYNTAX          Gauge32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "The number of local IP address pools presently set up."
    ::= { cdslLocalIpAddrPoolNumberEntry 2 }

-- Local IP Address Pool Table
cdslLocalIpAddrPoolTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslLocalIpAddrPoolEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This table defines the IP local address pool.

            An IP address pool may have a single entry in 
            the table. The ranges of a pool are represented
            in the cdslLocalIPAddrRangeTable."
    ::= { cdslLocalIpAddrPool 2 }

cdslLocalIpAddrPoolEntry OBJECT-TYPE
    SYNTAX          CdslLocalIpAddrPoolEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This list contains IP pool entry.

            The entry is read-only. The creation or the deletion
            of an entry will be a by-product of the entry in the 
            cdslLocalIPAddrRangeTable. When an entry is created 
            and activated in that table, an entry in this table 
            will come into existance if it is not already so.
            When an entry is deleted in that table, if there
            is no other entry existing in that table with the 
            same cdslNrpSlotIndex and cdslLocalIpAddrPoolName,
            the netry in this table with the same indices will
            diappear from the table."
    INDEX           {
                        cdslNrpSlotIndex,
                        cdslLocalIpAddrPoolName
                    }
    ::= { cdslLocalIpAddrPoolTable 1 }

CdslLocalIpAddrPoolEntry ::= SEQUENCE {
    cdslLocalIpAddrPoolName            DisplayString,
    cdslLocalIpAddrPoolFreeAddresses   Unsigned32,
    cdslLocalIpAddrPoolInUseAddresses  Unsigned32
}

cdslLocalIpAddrPoolName OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (1..32))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "A unique and non-empty string for the pool.
            The name can not be modified once created."
    ::= { cdslLocalIpAddrPoolEntry 1 }

cdslLocalIpAddrPoolFreeAddresses OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "The number of IP addresses still available for use in
            the pool. Please notice that the number is for the 
            whole pool, not for the individual range."
    ::= { cdslLocalIpAddrPoolEntry 2 }

cdslLocalIpAddrPoolInUseAddresses OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "The number of addresses currently in use in the pool.
            Please notice that the number is for the whole pool,
            not for the individual range."
    ::= { cdslLocalIpAddrPoolEntry 3 }

-- Local IP Address Pool Range Table
cdslLocalIpAddrRangeTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslLocalIpAddrRangeEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This table defines the IP local address pool ranges.

            An IP address pool may have a single entry or multiple 
            entries in the table, since an IP address pool can have 
            multiple dis-continuous ranges. Each range will have 
            a separate entry in the table."
    ::= { cdslLocalIpAddrPool 3 }

cdslLocalIpAddrRangeEntry OBJECT-TYPE
    SYNTAX          CdslLocalIpAddrRangeEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This list contains IP pool range entry.

            User may create a new entry or delete an existing entry. 

            When creating an entry, after its activation, an entry 
            in the cdslLocalIpAddrPoolTable will exist if it is not 
            already so.

            When destroying an entry, if the range is the only
            range in the pool, the range entry will be destroyed
            and the pool entry will disappear from the 
            cdslLocalIpAddrPoolTable."
    INDEX           {
                        cdslNrpSlotIndex,
                        cdslLocalIpAddrRangeLowAddr,
                        cdslLocalIpAddrRangeHighAddr,
                        cdslLocalIpAddrPoolName
                    }
    ::= { cdslLocalIpAddrRangeTable 1 }

CdslLocalIpAddrRangeEntry ::= SEQUENCE {
    cdslLocalIpAddrRangeLowAddr    IpAddress,
    cdslLocalIpAddrRangeHighAddr   IpAddress,
    cdslLocalIpAddrRangeRowStatus  RowStatus
}

cdslLocalIpAddrRangeLowAddr OBJECT-TYPE
    SYNTAX          IpAddress
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "The low range of this IP address pool range.
            This must be lower than the pool's high range."
    ::= { cdslLocalIpAddrRangeEntry 1 }

cdslLocalIpAddrRangeHighAddr OBJECT-TYPE
    SYNTAX          IpAddress
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "The high range of this IP address pool range.
            This must be higher than the pool's low range."
    ::= { cdslLocalIpAddrRangeEntry 2 }

cdslLocalIpAddrRangeRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to create a new row or delete an
            existing row in this table."
    ::= { cdslLocalIpAddrRangeEntry 3 }

-- PPP Over ATM PVC Information
cdslPppOverAtmPvcNumberTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslPppOverAtmPvcNumberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This table reflects the number of PVCs of PPP
            encapsulation presently set up in each NRP."
    ::= { cdslAtmPvc 1 }

cdslPppOverAtmPvcNumberEntry OBJECT-TYPE
    SYNTAX          CdslPppOverAtmPvcNumberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "Each entry represents the responding NRP."
    INDEX           { cdslNrpSlotIndex }
    ::= { cdslPppOverAtmPvcNumberTable 1 }

CdslPppOverAtmPvcNumberEntry ::= SEQUENCE {
    cdslPppOverAtmPvcs  Gauge32
}

cdslPppOverAtmPvcs OBJECT-TYPE
    SYNTAX          Gauge32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "The number of atm pvcs that are presently set up with
            PPP encapsulation. The number of all atm PVCs and 
            the maximum number of PVCs are provided by AToM Mib."
    ::= { cdslPppOverAtmPvcNumberEntry 1 }

-- PPP Over ATM PVC Table
cdslAtmPvcTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslAtmPvcEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This table includes configuration parameters
            for ATM PVCs with PPP encapsulation. 

            The vc-mode ATM PVC management approach is used as 
            the PVC creating method, which greatly simplifies 
            configuration by using of vc-class.

            The PVCs which were created using atm pvc cli commands 
            can only be read or deleted from snmp. In case of reading,
            only the values of vpi, vci, sub-interface number, 
            encapsulation, virtual template number and row status 
            are meaningful. When trying to set any object of these PVCs, 
            a GEN_ERROR returns except for the row status object. 
            To indicate a PVC is created with old pvc syntax, 
            the value of cdslAtmPvcClass will be set into '!'."
    ::= { cdslAtmPvc 2 }

cdslAtmPvcEntry OBJECT-TYPE
    SYNTAX          CdslAtmPvcEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "The IfIndex by which the table is indexed, is the ATM
            interface index in which the PVC is created. 

            The only object that is allowed to change the value 
            while the row status is 'active' is cdslAtmPvcClass.

            Please refer to the description of cdslAtmPvcRowStatus 
            for more information."
    INDEX           {
                        cdslNrpSlotIndex,
                        ifIndex,
                        cdslAtmPvcVpi,
                        cdslAtmPvcVci
                    }
    ::= { cdslAtmPvcTable 1 }

CdslAtmPvcEntry ::= SEQUENCE {
    cdslAtmPvcVpi                Integer32,
    cdslAtmPvcVci                Integer32,
    cdslAtmPvcName               DisplayString,
    cdslAtmPvcSubIfNumber        Integer32,
    cdslAtmPvcClass              DisplayString,
    cdslAtmPvcQosType            INTEGER,
    cdslAtmPvcAbrPCR             Unsigned32,
    cdslAtmPvcAbrMCR             Unsigned32,
    cdslAtmPvcAbrIORIF           Unsigned32,
    cdslAtmPvcAbrIORDF           Unsigned32,
    cdslAtmPvcBroadcast          INTEGER,
    cdslAtmPvcEncapsulation      INTEGER,
    cdslAtmPvcMuxLinkType        INTEGER,
    cdslAtmPvcVirtualTemplate    Integer32,
    cdslAtmPvcILMIManage         INTEGER,
    cdslAtmPvcInarp              Unsigned32,
    cdslAtmPvcOamRetryUpCount    Unsigned32,
    cdslAtmPvcOamRetryDownCount  Unsigned32,
    cdslAtmPvcOamPvcManaged      INTEGER,
    cdslAtmPvcOamPvcLF           Unsigned32,
    cdslAtmPvcProtocolIpBC       TruthValue,
    cdslAtmPvcProtocolIpxBC      TruthValue,
    cdslAtmPvcUbrPCR             Unsigned32,
    cdslAtmPvcUbrPlusPCR         Unsigned32,
    cdslAtmPvcUbrPlusMCR         Unsigned32,
    cdslAtmPvcVbrNrtPCR          Unsigned32,
    cdslAtmPvcVbrNrtSCR          Unsigned32,
    cdslAtmPvcRowStatus          RowStatus
}

cdslAtmPvcVpi OBJECT-TYPE
    SYNTAX          Integer32 (0..65535)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "The virtual path identifier of the PVC. Please note
            that it is routing processor's VPI number."
    ::= { cdslAtmPvcEntry 1 }

cdslAtmPvcVci OBJECT-TYPE
    SYNTAX          Integer32 (0..65535)
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "The virtual channel identifier of the PVC. Please note
            that it is routing processor's VCI number."
    ::= { cdslAtmPvcEntry 2 }

cdslAtmPvcName OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (0..32))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object can be used to identify the PVC.
            Unique name for each PVC is desired if assigned."
    DEFVAL          { "" }
    ::= { cdslAtmPvcEntry 3 }

cdslAtmPvcSubIfNumber OBJECT-TYPE
    SYNTAX          Integer32 (0..2147483647)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object indicates the ios sub-interface number
            if this PVC belongs to an atm sub-interface. 

            Once the pvc exists, the value can not be modified. 

            If the PVC is created under the ATM interface level 
            and not a subinterface level, the object shall be zero."
    DEFVAL          { 0 }
    ::= { cdslAtmPvcEntry 4 }

cdslAtmPvcClass OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (0..32))
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object indicates the vc-class to inherit when
            the named vc-class exists. 

            If the object is to set into an empty string, the default 
            value 'default-vc-class' will be used. 
            If the 'default-vc-class' class does exist,  it will 
            be created and the encapsulation is set to aal5ciscoppp 
            and the virtual template number is set to the largest virtual 
            template number allowed. If the specified virtual template does 
            not exist, it will be created with no specific configuration. 

            If the specified vc-class does not exist, a new vc-class 
            will be created in the same way as the default-vc-class is.

            If the specified vc-class exists and its encapsulation 
            is not 'aal5mux' or 'aal5ciscoppp', an error will be returned."
    DEFVAL          { "default-vc-class" }
    ::= { cdslAtmPvcEntry 5 }

cdslAtmPvcQosType OBJECT-TYPE
    SYNTAX          INTEGER {
                        ubrDefault(0),
                        cbr(1),
                        ubr(2),
                        ubrPlus(3),
                        vbrRt(4),
                        vbrNrt(5),
                        abr(6),
                        max(7)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "Quality of Service type of this PVC."
    ::= { cdslAtmPvcEntry 6 }

cdslAtmPvcAbrPCR OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    UNITS           "kbps"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "Availabe bit rate (Abr) peak cell rate(PCR) of this PVC."
    ::= { cdslAtmPvcEntry 7 }

cdslAtmPvcAbrMCR OBJECT-TYPE
    SYNTAX          Unsigned32 (0..1)
    UNITS           "kbps"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "Abr Minimum Guaranteed Cell Rate(MCR) of this PVC."
    ::= { cdslAtmPvcEntry 8 }

cdslAtmPvcAbrIORIF OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "Abr inverse of rate increase factor (1/rif) of this PVC."
    ::= { cdslAtmPvcEntry 9 }

cdslAtmPvcAbrIORDF OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "Abr inverse of rate decrease factor (1/rdf) of this PVC."
    ::= { cdslAtmPvcEntry 10 }

cdslAtmPvcBroadcast OBJECT-TYPE
    SYNTAX          INTEGER {
                        false(0),
                        true(1),
                        unknown(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates whether to allow broadcast or not."
    ::= { cdslAtmPvcEntry 11 }

cdslAtmPvcEncapsulation OBJECT-TYPE
    SYNTAX          INTEGER {
                        default(0),
                        aal5snap(1),
                        aal5mux(2),
                        aal5nlpid(3),
                        aal34smds(4),
                        aal5ilmi(5),
                        aal5qsaal(6),
                        aal5ciscoppp(7)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates encapsulation method of this PVC."
    ::= { cdslAtmPvcEntry 12 }

cdslAtmPvcMuxLinkType OBJECT-TYPE
    SYNTAX          INTEGER {
                        ip(1),
                        ppp(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object can be used to This object is used to specify
            the link type if the encapsulation is aal5mux.

                 1 -- ip and
                 2 -- ppp."
    DEFVAL          { ppp }
    ::= { cdslAtmPvcEntry 13 }

cdslAtmPvcVirtualTemplate OBJECT-TYPE
    SYNTAX          Integer32 (0..2147483647)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "The virtual template number configured for the PVC."
    ::= { cdslAtmPvcEntry 14 }

cdslAtmPvcILMIManage OBJECT-TYPE
    SYNTAX          INTEGER {
                        false(0),
                        true(1),
                        unknown(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates whether to ilmi manage or not."
    ::= { cdslAtmPvcEntry 15 }

cdslAtmPvcInarp OBJECT-TYPE
    SYNTAX          Unsigned32 (1..60)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the InARP Frequency in minutes
            (Only meaningful in aal5snap encapsulation)."
    ::= { cdslAtmPvcEntry 16 }

cdslAtmPvcOamRetryUpCount OBJECT-TYPE
    SYNTAX          Unsigned32 (1..600)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the OAM retry count before declaring
            a VC is up."
    ::= { cdslAtmPvcEntry 17 }

cdslAtmPvcOamRetryDownCount OBJECT-TYPE
    SYNTAX          Unsigned32 (1..600)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the OAM retry count before declaring
            a VC is down."
    ::= { cdslAtmPvcEntry 18 }

cdslAtmPvcOamPvcManaged OBJECT-TYPE
    SYNTAX          INTEGER {
                        false(0),
                        true(1),
                        unknown(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates whether to enable VC management
            on OAM in this PVC."
    ::= { cdslAtmPvcEntry 19 }

cdslAtmPvcOamPvcLF OBJECT-TYPE
    SYNTAX          Unsigned32 (0..600)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the OAM loopback frequency(seconds)
            for this PVC."
    ::= { cdslAtmPvcEntry 20 }

cdslAtmPvcProtocolIpBC OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "Pseudo-broadcast on the protocol IP inarp connections or
            not (Only meaningful in aal5snap encapsulation)."
    ::= { cdslAtmPvcEntry 21 }

cdslAtmPvcProtocolIpxBC OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates whether to allow Pseudo-broadcast
            on the protocol IPX inarp connections or not 
            (Only meaningful in aal5snap encapsulation)."
    ::= { cdslAtmPvcEntry 22 }

cdslAtmPvcUbrPCR OBJECT-TYPE
    SYNTAX          Unsigned32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "This object indicates the Ubr Peak Cell Rate."
    ::= { cdslAtmPvcEntry 23 }

cdslAtmPvcUbrPlusPCR OBJECT-TYPE
    SYNTAX          Unsigned32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "This object indicates the Ubr+ Peak Cell Rate."
    ::= { cdslAtmPvcEntry 24 }

cdslAtmPvcUbrPlusMCR OBJECT-TYPE
    SYNTAX          Unsigned32 (0..1)
    UNITS           "kbps"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the Ubr+ Minimum Guaranteed Cell Rate."
    ::= { cdslAtmPvcEntry 25 }

cdslAtmPvcVbrNrtPCR OBJECT-TYPE
    SYNTAX          Unsigned32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     "This object indicates the Vbr-Nrt Peak Cell Rate."
    ::= { cdslAtmPvcEntry 26 }

cdslAtmPvcVbrNrtSCR OBJECT-TYPE
    SYNTAX          Unsigned32 (1..1)
    UNITS           "kbps"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the Vbr-Nrt Sustainable Cell Rate."
    ::= { cdslAtmPvcEntry 27 }

cdslAtmPvcRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to create a new row or modify
            or delete an existing row in this table.

            When the row is created, but the minimun set of 
            parameters is not all set, the status is 'notReady'.
            There is no PVC corresponding to it.

            The minimum set of parameters required to activate
            an entry is cdslAtmPvcSubIfNumber."
    DEFVAL          { active }
    ::= { cdslAtmPvcEntry 28 }

-- VC Class Information
cdslVcClassNumberTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslVcClassNumberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "This table reflects the number of VC classes
            that are presently set up in each NRP."
    ::= { cdslVcClass 1 }

cdslVcClassNumberEntry OBJECT-TYPE
    SYNTAX          CdslVcClassNumberEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "Entries are read only."
    INDEX           { cdslNrpSlotIndex }
    ::= { cdslVcClassNumberTable 1 }

CdslVcClassNumberEntry ::= SEQUENCE {
    cdslMaxVcClasses    Unsigned32,
    cdslVcClasses       Gauge32
}

cdslMaxVcClasses OBJECT-TYPE
    SYNTAX          Unsigned32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the maximum number of VC
            classes allowed."
    ::= { cdslVcClassNumberEntry 1 }

cdslVcClasses OBJECT-TYPE
    SYNTAX          Gauge32 (0..4294967295)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the number of VC classes presently
            set in each NRP identified by cdslNrpSlotIndex."
    ::= { cdslVcClassNumberEntry 2 }

-- VC Class Table
cdslVcClassTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CdslVcClassEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "The entries in this table are vc-classes with at least
            one parameter configured. In other words, empty classes 
            (with name only) will not be present in this table."
    ::= { cdslVcClass 2 }

cdslVcClassEntry OBJECT-TYPE
    SYNTAX          CdslVcClassEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
            "The VC Class entry is read-create.
            Each entry represents a VC class."
    INDEX           {
                        cdslNrpSlotIndex,
                        cdslVcClassName
                    }
    ::= { cdslVcClassTable 1 }

CdslVcClassEntry ::= SEQUENCE {
    cdslVcClassName               DisplayString,
    cdslVcClassType               INTEGER,
    cdslVcClassQosType            INTEGER,
    cdslVcClassAbrPCR             Integer32,
    cdslVcClassAbrMcr             Integer32,
    cdslVcClassAbrIORIF           Integer32,
    cdslVcClassAbrIORDF           Integer32,
    cdslVcClassBroadcast          INTEGER,
    cdslVcClassEncapsulation      INTEGER,
    cdslVcClassMuxLinkType        INTEGER,
    cdslVcClassVirtualTemplate    Integer32,
    cdslVcClassIdleTimeout        Integer32,
    cdslVcClassIdleMTR            Integer32,
    cdslVcClassILMIManage         INTEGER,
    cdslVcClassInarp              Integer32,
    cdslVcClassOamRetryUpCount    Integer32,
    cdslVcClassOamRetryDownCount  Integer32,
    cdslVcClassOamPvcManaged      INTEGER,
    cdslVcClassOamPvcLF           Integer32,
    cdslVcClassOamSvcManaged      INTEGER,
    cdslVcClassOamSvcLF           Integer32,
    cdslVcClassProtocolIpBC       TruthValue,
    cdslVcClassProtocolIpxBC      TruthValue,
    cdslVcClassTransmitPriority   Integer32,
    cdslVcClassUbrPCR             Integer32,
    cdslVcClassUbrInputPCR        Integer32,
    cdslVcClassUbrPlusPCR         Integer32,
    cdslVcClassUbrPlusMCR         Integer32,
    cdslVcClassUbrPlusInputPCR    Integer32,
    cdslVcClassUbrPlusInputMCR    Integer32,
    cdslVcClassVbrNrtPCR          Integer32,
    cdslVcClassVbrNrtSCR          Integer32,
    cdslVcClassVbrNrtInputBP      Integer32,
    cdslVcClassVbrNrtInputPCR     Integer32,
    cdslVcClassVbrNrtInputSCR     Integer32,
    cdslVcClassVbrNrtInputMBS     Integer32,
    cdslVcClassRowStatus          RowStatus
}

cdslVcClassName OBJECT-TYPE
    SYNTAX          DisplayString (SIZE (1..32))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     "This object is used to identify the vc class."
    ::= { cdslVcClassEntry 1 }

cdslVcClassType OBJECT-TYPE
    SYNTAX          INTEGER {
                        atm(1),
                        funi(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "This object indicates the type of the vc class.

            Atm is for Asynchronous transfer mode and
            funi for frame user network interface."
    ::= { cdslVcClassEntry 2 }

cdslVcClassQosType OBJECT-TYPE
    SYNTAX          INTEGER {
                        ubrDefault(0),
                        cbr(1),
                        ubr(2),
                        ubrPlus(3),
                        vbrRt(4),
                        vbrNrt(5),
                        abr(6),
                        max(7)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the QOS type of the vc class."
    DEFVAL          { ubrDefault }
    ::= { cdslVcClassEntry 3 }

cdslVcClassAbrPCR OBJECT-TYPE
    SYNTAX          Integer32 (56..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "This object specifies Abr Peak Cell Rate."
    ::= { cdslVcClassEntry 4 }

cdslVcClassAbrMcr OBJECT-TYPE
    SYNTAX          Integer32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies Minimum Guaranteed Cell Rate.
            It shall be smaller than cdslVcClassAbrPCR."
    ::= { cdslVcClassEntry 5 }

cdslVcClassAbrIORIF OBJECT-TYPE
    SYNTAX          Integer32 (0..15)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies Abr inverse of rate increase factor
            (1/rif) to the power of two.

            Note that the actual value in the system is the power of  
            two of this object. That is, for example, a value 5 of 
            this object means 2**5 = 32 in the system for AbrIORIF.

            Range (0..15) to the power of two is the range (1..32768)."
    ::= { cdslVcClassEntry 6 }

cdslVcClassAbrIORDF OBJECT-TYPE
    SYNTAX          Integer32 (0..15)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "Abr inverse of rate decrease factor (1/rdf) to the power
            of two.

            Note that the actual value is the power of two of this 
            object. For example, value 5 of this object means 
            2**5 = 32.

            Range (0..15) to the power of two is the range (1..32768)."
    ::= { cdslVcClassEntry 7 }

cdslVcClassBroadcast OBJECT-TYPE
    SYNTAX          INTEGER {
                        false(0),
                        true(1),
                        unknown(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object indicates whether to allow broadcast or not.
            When set the value, do not use unknown."
    DEFVAL          { false }
    ::= { cdslVcClassEntry 8 }

cdslVcClassEncapsulation OBJECT-TYPE
    SYNTAX          INTEGER {
                        default(0),
                        aal5snap(1),
                        aal5mux(2),
                        aal5nlpid(3),
                        aal34smds(4),
                        aal5ilmi(5),
                        aal5qsaal(6),
                        aal5ciscoppp(7)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "This object specifies encapsulation method."
    ::= { cdslVcClassEntry 9 }

cdslVcClassMuxLinkType OBJECT-TYPE
    SYNTAX          INTEGER {
                        ip(1),
                        ppp(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to specify the link type if
            the encapsulation is aal5mux.

                   1 for IP and
                   2 for PPP."
    DEFVAL          { ppp }
    ::= { cdslVcClassEntry 10 }

cdslVcClassVirtualTemplate OBJECT-TYPE
    SYNTAX          Integer32 (0..2147483647)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "The virtual template number. Value zero means not configured."
    ::= { cdslVcClassEntry 11 }

cdslVcClassIdleTimeout OBJECT-TYPE
    SYNTAX          Integer32 (0..2000000)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "This object specifies idle timeout."
    ::= { cdslVcClassEntry 12 }

cdslVcClassIdleMTR OBJECT-TYPE
    SYNTAX          Integer32 (0..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the minimum traffic rate to keep
            the connection."
    ::= { cdslVcClassEntry 13 }

cdslVcClassILMIManage OBJECT-TYPE
    SYNTAX          INTEGER {
                        false(0),
                        true(1),
                        unknown(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies whether to allow ilmi manage or not.
            When set the value, do not use unknown."
    DEFVAL          { false }
    ::= { cdslVcClassEntry 14 }

cdslVcClassInarp OBJECT-TYPE
    SYNTAX          Integer32 (1..60)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "This object specifies InARP Frequency in minutes."
    ::= { cdslVcClassEntry 15 }

cdslVcClassOamRetryUpCount OBJECT-TYPE
    SYNTAX          Integer32 (1..600)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "OAM retry count before declaring a VC is up"
    ::= { cdslVcClassEntry 16 }

cdslVcClassOamRetryDownCount OBJECT-TYPE
    SYNTAX          Integer32 (1..600)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "OAM retry count before declaring a VC is down"
    ::= { cdslVcClassEntry 17 }

cdslVcClassOamPvcManaged OBJECT-TYPE
    SYNTAX          INTEGER {
                        false(0),
                        true(1),
                        unknown(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies whether to enable VC management on
            OAM in a PVC. When set the value, do not use unknown."
    DEFVAL          { false }
    ::= { cdslVcClassEntry 18 }

cdslVcClassOamPvcLF OBJECT-TYPE
    SYNTAX          Integer32 (0..600)
    UNITS           "seconds"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "This object specifies the OAM loopback frequency."
    ::= { cdslVcClassEntry 19 }

cdslVcClassOamSvcManaged OBJECT-TYPE
    SYNTAX          INTEGER {
                        false(0),
                        true(1),
                        unknown(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies whether to enable VC management on
            OAM on SVC SVC. When set the value, do not use unknown."
    DEFVAL          { false }
    ::= { cdslVcClassEntry 20 }

cdslVcClassOamSvcLF OBJECT-TYPE
    SYNTAX          Integer32 (0..600)
    UNITS           "seconds"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the OAM loopback frequency for SVC"
    ::= { cdslVcClassEntry 21 }

cdslVcClassProtocolIpBC OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies whether to allow the pseudo-broadcast
            on the protocol IP inarp connections or not."
    ::= { cdslVcClassEntry 22 }

cdslVcClassProtocolIpxBC OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies whether to allow the pseudo-broadcast
            on the protocol IPX inarp connections or not."
    ::= { cdslVcClassEntry 23 }

cdslVcClassTransmitPriority OBJECT-TYPE
    SYNTAX          Integer32 (0..2147483647)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "This object specifies the transmit priority."
    ::= { cdslVcClassEntry 24 }

cdslVcClassUbrPCR OBJECT-TYPE
    SYNTAX          Integer32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "This object specifies the Ubr Peak Cell Rate."
    ::= { cdslVcClassEntry 25 }

cdslVcClassUbrInputPCR OBJECT-TYPE
    SYNTAX          Integer32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the Ubr Input Peak Cell Rate."
    ::= { cdslVcClassEntry 26 }

cdslVcClassUbrPlusPCR OBJECT-TYPE
    SYNTAX          Integer32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "This object specifies the Ubr+ Peak Cell Rate."
    ::= { cdslVcClassEntry 27 }

cdslVcClassUbrPlusMCR OBJECT-TYPE
    SYNTAX          Integer32 (0..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the Ubr+ Minimum Guaranteed Cell Rate.
            It shall be smaller than cdslVcClassUbrPlusPCR."
    ::= { cdslVcClassEntry 28 }

cdslVcClassUbrPlusInputPCR OBJECT-TYPE
    SYNTAX          Integer32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the Ubr+ Input Peak Cell Rate."
    ::= { cdslVcClassEntry 29 }

cdslVcClassUbrPlusInputMCR OBJECT-TYPE
    SYNTAX          Integer32 (0..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the Ubr+ Input Minimum Cell Rate.
            It shall be smaller than cdslVcClassUbrPlusInputPCR."
    ::= { cdslVcClassEntry 30 }

cdslVcClassVbrNrtPCR OBJECT-TYPE
    SYNTAX          Integer32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "This object specifies the Vbr-Nrt Peak Cell Rate."
    ::= { cdslVcClassEntry 31 }

cdslVcClassVbrNrtSCR OBJECT-TYPE
    SYNTAX          Integer32 (1..1)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the Vbr-Nrt Sustainable Cell Rate.
            It shall be smaller than cdslVcClassVbrNrtPCR."
    ::= { cdslVcClassEntry 32 }

cdslVcClassVbrNrtInputBP OBJECT-TYPE
    SYNTAX          Integer32 (1..65536)
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the Vbr-Nrt Input Burst Parameter:
            rounded on AIP to the nearest 32, used as is on NPM."
    ::= { cdslVcClassEntry 33 }

cdslVcClassVbrNrtInputPCR OBJECT-TYPE
    SYNTAX          Integer32 (1..155000)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the Vbr-Nrt Input Peak Cell Rate."
    ::= { cdslVcClassEntry 34 }

cdslVcClassVbrNrtInputSCR OBJECT-TYPE
    SYNTAX          Integer32 (1..1)
    UNITS           "kbps"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the Vbr-Nrt Input Sustainable Cell
            Rate. It shall be smaller than cdslVcClassVbrNrtInputPCR."
    ::= { cdslVcClassEntry 35 }

cdslVcClassVbrNrtInputMBS OBJECT-TYPE
    SYNTAX          Integer32 (1..65536)
    UNITS           "cells"
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object specifies the Input Maximum Burst Size."
    ::= { cdslVcClassEntry 36 }

cdslVcClassRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION
            "This object is used to create a new row or modify
            or delete an existing row in this table.                    

            The return value of this object is always 'active', 
            if the row exists.

            To delete the row, set the value to 'destroy'.

            When creating a new row, 'createAndGo' is the default
            value and method even if 'createAndWait' is specified.
            The row and the VC class will be created.

            When deleting a vc class, if there is still reference
            to it, it is made invisibile. Otherwise, it is removed 
            physically."
    DEFVAL          { active }
    ::= { cdslVcClassEntry 37 }

-- Notifications
ciscoDslProvMIBNotificationPrefix OBJECT IDENTIFIER
    ::= { ciscoDslProvisionMIB 2 }

-- Conformance
ciscoDslProvMIBConformance OBJECT IDENTIFIER
    ::= { ciscoDslProvisionMIB 3 }

ciscoDslProvMIBCompliances OBJECT IDENTIFIER
    ::= { ciscoDslProvMIBConformance 1 }

ciscoDslProvMIBGroups OBJECT IDENTIFIER
    ::= { ciscoDslProvMIBConformance 2 }

-- Compliance
ciscoDslProvMIBBasicCompliance MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
            "The compliance statement for entities which implement
            the Cisco DSL Provision Management MIB."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoNrpSlotGroup,
                        ciscoVirtualTemplateGroup,
                        ciscoIpPoolGroup,
                        ciscoDslPVCGroup
                    }

    GROUP   ciscoVcClassGroup
    DESCRIPTION
            "Implementation of this group is optional."

    ::= { ciscoDslProvMIBCompliances 1 }

-- Units of Conformance
ciscoNrpSlotGroup OBJECT-GROUP
    OBJECTS         {
                        cdslMaxNrps,
                        cdslNrpNumber,
                        cdslNrpIpAddress
                    }
    STATUS          current
    DESCRIPTION     "The DSL Provision NRP Slot Group."
    ::= { ciscoDslProvMIBGroups 1 }

ciscoVirtualTemplateGroup OBJECT-GROUP
    OBJECTS         {
                        cdslMaxVirtualTemplates,
                        cdslVirtualTemplates,
                        cdslVTIpAddressMethod,
                        cdslVTIpAddress,
                        cdslVTIpAddressMask,
                        cdslVTIpIfIndex,
                        cdslVTPeerIpAddressMethod,
                        cdslVTPeerIpAddrPool,
                        cdslVTPppAuthPap,
                        cdslVTPppAuthChap,
                        cdslVTPppAuthMSChap,
                        cdslVTPppChapHost,
                        cdslVTPppChapPassword,
                        cdslVTPppChapEncrypType,
                        cdslVTPppChapRefuse,
                        cdslVTPppChapWaitPeer,
                        cdslVTPppPapUserName,
                        cdslVTPppPapPassword,
                        cdslVTPppPapEncrypType,
                        cdslVTPppUseTacacs,
                        cdslVTRowStatus
                    }
    STATUS          current
    DESCRIPTION
            "The DSL Provision Virtual Template Interface Group."
    ::= { ciscoDslProvMIBGroups 2 }

ciscoIpPoolGroup OBJECT-GROUP
    OBJECTS         {
                        cdslLocalIpAddrPools,
                        cdslMaxLocalIpAddrPools,
                        cdslLocalIpAddrPoolFreeAddresses,
                        cdslLocalIpAddrPoolInUseAddresses,
                        cdslLocalIpAddrRangeRowStatus
                    }
    STATUS          current
    DESCRIPTION     "The DSL Provision IP Pool Group."
    ::= { ciscoDslProvMIBGroups 3 }

ciscoDslPVCGroup OBJECT-GROUP
    OBJECTS         {
                        cdslPppOverAtmPvcs,
                        cdslAtmPvcName,
                        cdslAtmPvcSubIfNumber,
                        cdslAtmPvcClass,
                        cdslAtmPvcAbrPCR,
                        cdslAtmPvcAbrIORIF,
                        cdslAtmPvcAbrIORDF,
                        cdslAtmPvcBroadcast,
                        cdslAtmPvcEncapsulation,
                        cdslAtmPvcMuxLinkType,
                        cdslAtmPvcILMIManage,
                        cdslAtmPvcInarp,
                        cdslAtmPvcOamRetryUpCount,
                        cdslAtmPvcOamRetryDownCount,
                        cdslAtmPvcOamPvcManaged,
                        cdslAtmPvcOamPvcLF,
                        cdslAtmPvcProtocolIpBC,
                        cdslAtmPvcProtocolIpxBC,
                        cdslAtmPvcUbrPCR,
                        cdslAtmPvcUbrPlusPCR,
                        cdslAtmPvcUbrPlusMCR,
                        cdslAtmPvcVbrNrtPCR,
                        cdslAtmPvcVbrNrtSCR,
                        cdslAtmPvcVirtualTemplate,
                        cdslAtmPvcRowStatus,
                        cdslAtmPvcQosType,
                        cdslAtmPvcAbrMCR
                    }
    STATUS          current
    DESCRIPTION     "The DSL Provision PVC Group."
    ::= { ciscoDslProvMIBGroups 4 }

ciscoVcClassGroup OBJECT-GROUP
    OBJECTS         {
                        cdslVcClasses,
                        cdslMaxVcClasses,
                        cdslVcClassType,
                        cdslVcClassQosType,
                        cdslVcClassAbrPCR,
                        cdslVcClassAbrMcr,
                        cdslVcClassAbrIORIF,
                        cdslVcClassAbrIORDF,
                        cdslVcClassBroadcast,
                        cdslVcClassEncapsulation,
                        cdslVcClassMuxLinkType,
                        cdslVcClassIdleTimeout,
                        cdslVcClassIdleMTR,
                        cdslVcClassILMIManage,
                        cdslVcClassInarp,
                        cdslVcClassOamRetryUpCount,
                        cdslVcClassOamRetryDownCount,
                        cdslVcClassOamPvcManaged,
                        cdslVcClassOamPvcLF,
                        cdslVcClassOamSvcManaged,
                        cdslVcClassOamSvcLF,
                        cdslVcClassProtocolIpBC,
                        cdslVcClassProtocolIpxBC,
                        cdslVcClassTransmitPriority,
                        cdslVcClassUbrPCR,
                        cdslVcClassUbrInputPCR,
                        cdslVcClassUbrPlusPCR,
                        cdslVcClassUbrPlusMCR,
                        cdslVcClassUbrPlusInputPCR,
                        cdslVcClassUbrPlusInputMCR,
                        cdslVcClassVbrNrtPCR,
                        cdslVcClassVbrNrtSCR,
                        cdslVcClassVbrNrtInputBP,
                        cdslVcClassVbrNrtInputPCR,
                        cdslVcClassVbrNrtInputSCR,
                        cdslVcClassVbrNrtInputMBS,
                        cdslVcClassVirtualTemplate,
                        cdslVcClassRowStatus
                    }
    STATUS          current
    DESCRIPTION     "The DSL Provision VC Class Group."
    ::= { ciscoDslProvMIBGroups 5 }

END